package com.cmwa.scbp.sys.permission.dataRole.dao;

import java.util.List;

import com.cmwa.scbp.base.annotation.MybatisDao;
import com.cmwa.scbp.base.mvc.dao.BaseDao;
import com.cmwa.scbp.base.mvc.entity.SearchParam;
import com.cmwa.scbp.sys.permission.dataRole.entity.RoleEmployeeRelationsVo;

/**
 * 角色员工关系dao层接口
 * @author ex-weicb
 * @Date 2016年4月28日 下午2:30:30
 * @Description
 */
@MybatisDao
public interface RoleEmployeeRelationsDao extends BaseDao<RoleEmployeeRelationsVo> {

	/**
	 * 批量新增角色员工关系数据
	 * @author ex-weicb
	 * @createDate 2016年4月28日 下午2:35:20
	 * @param param
	 */
	public void batchInsert(SearchParam param);

	/**
	 * 根据角色id删除角色员工关系数据
	 * @author ex-weicb
	 * @createDate 2016年4月29日 上午10:41:28
	 * @param roleId
	 */
	public void deleteByRoleId(String roleId);
	
	/**
	 * 根据员工id查询角色员工关系数据
	 * @author ex-qiuzw
	 * @createDate 2016年10月13日 上午14:18:28
	 * @param empId
	 */
	public List<RoleEmployeeRelationsVo> queryRelationsByEmpId(String empId);
	
	/**
	 * 新增角色员工关系数据（按员工新增）
	 * @param param
	 */
	public void saveRoleEmployeeRelation(RoleEmployeeRelationsVo roleEmployeeRelationsVo);
	
	/**
	  * 查询新入司但未关联数据角色的人员信息
	  * @return
	  */
	List<RoleEmployeeRelationsVo> queryNewEmpList();
	
	/**
	 * 查询离司但未清除数据权限的员工信息
	 * @return
	 */
	List<RoleEmployeeRelationsVo> queryLeaveEmpList();
	
	/**
	 * 批量删除员工与角色关联关系
	 */
	void batchDeleteRoleEmployeeRelations(List<RoleEmployeeRelationsVo> list);
	
	/**
	 * 根据员工ID和角色ID查询员工是否关联了数据角色
	 */
	int countRoleEmployeeRelation(RoleEmployeeRelationsVo roleEmployeeRelationsVo);
}
